/*
 * WxBizAppConfig.java
 * Copyright(C) WYY
 * All rights reserved.
 * -----------------------------------------------
 * 2019-10-11 Created
 */
package com.project.web.wechat.model.app;

import com.project.web.course.model.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 企业微信应用配置
 *
 * @version 1.0 2019-10-11
 */
@ApiModel("微信企业应用配置对象")
public class WxBizAppConfig extends BaseEntity {

    private static final long serialVersionUID = 462512451389227008L;

    /**
     * 企业微信配置ID
     */
    @ApiModelProperty("企业微信配置ID")
    private Long wxBizConfigId;

    /**
     * 应用名称
     */
    @ApiModelProperty("应用名称")
    private String agentName;

    /**
     * 应用ID
     */
    @ApiModelProperty("应用ID")
    private String agentId;

    /**
     * 应用密钥
     */
    @ApiModelProperty("应用密钥")
    private String agentSecret;

    /**
     * 应用类型
     * 1：自建应用
     * 2：基础应用
     * 3：通讯录管理
     * 4：外部联系人管理
     */
    @ApiModelProperty("应用类型【1：自建应用 2：基础应用 3：通讯录管理 4：外部联系人管理】")
    private Integer agentType;

    /**
     * 服务URl
     */
    @ApiModelProperty("服务URl")
    private String serverUrl;

    /**
     * 服务token
     */
    @ApiModelProperty("服务token")
    private String serverToken;

    /**
     * 服务EncodingAESKey
     */
    @ApiModelProperty("服务EncodingAESKey")
    private String serverKey;

    /**
     * 状态
     * 0：新建
     * 1：启用
     * 2：禁用
     */
    @ApiModelProperty("状态【0：新建 1：启用 2：禁用】")
    private Integer status;

    /**
     * 状态枚举
     */
    public enum STATUS_ENUM {
        NEW(0, "新建"),
        ENABLE(1, "启用"),
        DISABLE(2, "禁用");

        /**
         * 枚举值
         */
        private Integer value;

        /**
         * 枚举名称
         */
        private String name;

        /**
         * 枚举有参构造函数
         *
         * @param value 枚举值
         * @param name  枚举名
         */
        STATUS_ENUM(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        /**
         * 获取枚举值
         */
        public Integer getValue() {
            return value;
        }

        /**
         * 获取枚举名
         */
        public String getName() {
            return name;
        }
    }

    /**
     * 获取企业微信配置ID
     */
    public Long getWxBizConfigId() {
        return wxBizConfigId;
    }

    /**
     * 设置企业微信配置ID
     */
    public void setWxBizConfigId(Long wxBizConfigId) {
        this.wxBizConfigId = wxBizConfigId;
    }

    /**
     * 获取应用名称
     */
    public String getAgentName() {
        return agentName;
    }

    /**
     * 设置应用名称
     */
    public void setAgentName(String agentName) {
        this.agentName = agentName == null ? null : agentName.trim();
    }

    /**
     * 获取应用ID
     */
    public String getAgentId() {
        return agentId;
    }

    /**
     * 设置应用ID
     */
    public void setAgentId(String agentId) {
        this.agentId = agentId == null ? null : agentId.trim();
    }

    /**
     * 获取应用密钥
     */
    public String getAgentSecret() {
        return agentSecret;
    }

    /**
     * 设置应用密钥
     */
    public void setAgentSecret(String agentSecret) {
        this.agentSecret = agentSecret == null ? null : agentSecret.trim();
    }

    /**
     * 获取应用类型
     * 1：自建应用
     * 2：基础应用
     * 3：通讯录管理
     * 4：外部联系人管理
     */
    public Integer getAgentType() {
        return agentType;
    }

    /**
     * 设置应用类型
     * 1：自建应用
     * 2：基础应用
     * 3：通讯录管理
     * 4：外部联系人管理
     */
    public void setAgentType(Integer agentType) {
        this.agentType = agentType;
    }

    /**
     * 获取服务URl
     */
    public String getServerUrl() {
        return serverUrl;
    }

    /**
     * 设置服务URl
     */
    public void setServerUrl(String serverUrl) {
        this.serverUrl = serverUrl == null ? null : serverUrl.trim();
    }

    /**
     * 获取服务token
     */
    public String getServerToken() {
        return serverToken;
    }

    /**
     * 设置服务token
     */
    public void setServerToken(String serverToken) {
        this.serverToken = serverToken == null ? null : serverToken.trim();
    }

    /**
     * 获取服务EncodingAESKey
     */
    public String getServerKey() {
        return serverKey;
    }

    /**
     * 设置服务EncodingAESKey
     */
    public void setServerKey(String serverKey) {
        this.serverKey = serverKey == null ? null : serverKey.trim();
    }

    /**
     * 获取状态
     * 0：新建
     * 1：启用
     * 2：禁用
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置状态
     * 0：新建
     * 1：启用
     * 2：禁用
     */
    public void setStatus(Integer status) {
        this.status = status;
    }
}